package com.ruoyi.system.api.service;

import com.ruoyi.system.api.ResponseWithData;
import com.ruoyi.system.api.domain.ReportInfo;
import com.ruoyi.system.api.domain.ServiceNotice;

import java.util.List;
import java.util.Map;

/**
 * 服务通知的子服务与报告关联Service接口
 * 
 * @author ruoyi
 * @date 2020-03-03
 */
public interface IReportInfoService
{
    /**
     * 查询服务通知的子服务与报告关联
     * 
     * @param id 服务通知的子服务与报告关联ID
     * @return 服务通知的子服务与报告关联
     */
    public ReportInfo selectStReportInfoById(Long id);

    /**
     * 查询服务通知的子服务与报告关联列表
     * 
     * @param stReportInfo 服务通知的子服务与报告关联
     * @return 服务通知的子服务与报告关联集合
     */
    public List<ReportInfo> selectStReportInfoList(ReportInfo stReportInfo);

    /**
     * 新增服务通知的子服务与报告关联
     * 
     * @param stReportInfo 服务通知的子服务与报告关联
     * @return 结果
     */
    public int insertStReportInfo(ReportInfo stReportInfo);

    /**
     * 修改服务通知的子服务与报告关联
     * 
     * @param stReportInfo 服务通知的子服务与报告关联
     * @return 结果
     */
    public int updateStReportInfo(ReportInfo stReportInfo);

    /**
     * 批量删除服务通知的子服务与报告关联
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteStReportInfoByIds(String ids);

    /**
     * 删除服务通知的子服务与报告关联信息
     * 
     * @param id 服务通知的子服务与报告关联ID
     * @return 结果
     */
    public int deleteStReportInfoById(Long id);

    /**
     *  查询报告列表
     *
     * @param stReportInfo
     * @return com.ruoyi.system.api.ResponseWithData<?>
     * @author sjy
     * @date 2020年3月9日19:37:04
     */
    public List<ReportInfo> getReportList(ReportInfo stReportInfo);


    /**
     *  查询报告列表（关联主表）
     *
     * @param serviceNotice
     * @return com.ruoyi.system.api.ResponseWithData<?>
     * @author sjy
     * @date 2020年3月9日19:49:44
     */
    public List<ServiceNotice> getReportListByEnginnerId(ServiceNotice serviceNotice);

    /**
     *  查询客户签名类别
     *
     * @param stReportInfo
     * @return com.ruoyi.system.api.ResponseWithData<?>
     * @author sjy
     * @date 2020年3月21日13:20:45
     */
    public List<ReportInfo> getCustomerSignList(ReportInfo stReportInfo);

    ResponseWithData<?> deleteReport(Long id, Long enginnerId,String serviceNo,String helpId,String type) throws Exception;

    Map<String, Object> selectReportStartEndTime(String serviceNo, Long enginnerId);

    ResponseWithData<?> checkPhoneResolutionReportCompleted(String serviceNo, Long enginnerId, String planId);

    ResponseWithData<?> getServiceStatusByServiceNo(String serviceNo,String fseId);
    public List<ReportInfo> getAllCustomerSignList(ReportInfo stReportInfo);
    
    /**
     * 2.75	获取服务通知签名图片接口
     * @param serviceNo
     * @return
     */
    public ResponseWithData<?> getServiceSignPicHandle(String serviceNo);

    public int updateStReportInfoByReportNo(ReportInfo stReportInfo);

}
